package com.ask.forMe.service;

import com.ask.forMe.model.entity.Item;

import java.util.List;
import java.util.Set;

public interface RecommendService {
    /**
     * 为用户推荐相似商品
     *
     * @param userId
     * @param topN
     * @return
     */
    List<Long> getItemRecommendationsForUser(Long userId, int topN);

    /**
     * 从redis中获取近7天推荐过的商品ID
     *
     * @param userId
     * @return
     */
    Set<Long> getPast7DaysRecommendedIds(Long userId);

    /**
     * 用户点击<换一批>，生成新的一批推荐
     *
     * @param userId
     */
    List<Item> refreshRecommendation(Long userId, int topN);

    /**
     * 存储生成的推荐列表至redis
     * @param userId
     * @param itemIds
     */
    void saveRecommendationIds2Redis(Long userId, List<Long> itemIds);
}

